package com.jesson.aidl;

import androidx.appcompat.app.AppCompatActivity;

//import com.jesson.server.BinderPool;

public class MainActivity extends AppCompatActivity {

//    private IMyAidlInterface iMyAidlInterface;
//
//    private boolean connected = false;
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
//        super.onCreate(savedInstanceState);
//        setContentView(R.layout.activity_main);
//
//
//        findViewById(R.id.tv).setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//               // bind();
//                bindBinderPool();
//            }
//        });
//    }
//
//    public void getMsg() {
//        if (iMyAidlInterface == null) {
//            Toast.makeText(this, "服务未连接", Toast.LENGTH_LONG).show();
//            return;
//        }
//        try {
//            Toast.makeText(MainActivity.this, iMyAidlInterface.getName(), Toast.LENGTH_SHORT).show();
//        } catch (RemoteException e) {
//            e.printStackTrace();
//        }
//    }
//
//    private ServiceConnection serviceConnection;
//
//    public void bindBinderPool(){
//        BinderPool mBinderPool = BinderPool.getInstance(MainActivity.this);
//        //测试IUser
//        IBinder mBinder = mBinderPool.queryBinder(BinderPool.BINDER_TWO);
//        IMyAidlInterface mUser = IMyAidlInterface.Stub.asInterface(mBinder);
//        try {
//            Log.i("jesson", mUser.getName());
//        } catch (RemoteException e) {
//            e.printStackTrace();
//        }
//    }
//
//    public void bind() {
//        Intent intent = new Intent();
//        intent.setComponent(new ComponentName("com.jesson.server", "com.jesson.server.MyService"));
//        bindService(intent, serviceConnection = new ServiceConnection() {
//
//            @Override
//            public void onServiceConnected(ComponentName name, IBinder service) {
//                Log.d("Jesson", "onServiceConnected");
//                connected = true;
//                iMyAidlInterface = IMyAidlInterface.Stub.asInterface(service);
//
//                if(iMyAidlInterface!=null){
//                    try {
//                        service.linkToDeath(mDeathRecipient, 0); //binderDied
//                    } catch (RemoteException e) {
//                        e.printStackTrace();
//                    }
//                }
//                if(iMyAidlInterface!=null && iMyAidlInterface.asBinder().isBinderAlive()){
//                    getMsg();
//                }
//
//            }
//
//            @Override
//            public void onServiceDisconnected(ComponentName name) {
//                Log.d("Jesson", "onServiceDisconnected");
//                iMyAidlInterface = null;
//                connected = false;
//            }
//        }, BIND_AUTO_CREATE);
//    }
//
//    /***
//     * 注册死亡代理
//     */
//    private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
//
//        @Override
//        public void binderDied() {
//            // 当绑定的service异常断开连接后，自动执行此方法
//            Log.e("jesson","binderDied" );
//            if (iMyAidlInterface != null){
//                // 当前绑定由于异常断开时，将当前死亡代理进行解绑
//                //  重新绑定服务端的service
//                iMyAidlInterface.asBinder().unlinkToDeath(mDeathRecipient, 0);
//                Intent intent = new Intent();
//                intent.setComponent(new ComponentName("com.jesson.server", "com.jesson.server.MyService"));
//                bindService(intent,serviceConnection,BIND_AUTO_CREATE);
//            }
//        }
//    };
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        unbindService(serviceConnection);
//    }
}